{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from xgboost import XGBClassifier\n",
    "import xgboost as xgb\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.metrics import log_loss\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# load data\n",
    "train = pd.read_csv('train.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.1提取标签y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_train = train['interest_level']\n",
    "trian = train.drop(['interest_level'], axis=1)\n",
    "X_train = np.array(train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# prepare cross validation\n",
    "kfold = StratifiedKFold(n_splits=5, shuffle=True, random_state=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.2确定max_depth和min_child_weight的范围"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'max_depth': [4, 5, 6], 'min_child_weight': [0.5, 1, 1.5]}\n"
     ]
    }
   ],
   "source": [
    "max_depth = [4,5,6]#第一次3,5,7,9\n",
    "\n",
    "min_child_weight = [0.5,1,1.5]#第一次1,3，5,\n",
    "\n",
    "param_test2_1 = dict(max_depth=max_depth, min_child_weight=min_child_weight)\n",
    "print(param_test2_1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Best score is -0.000029 and using {'max_depth': 4, 'min_child_weight': 0.5}\n"
     ]
    }
   ],
   "source": [
    "xgb2_1 = XGBClassifier(\n",
    "          learning_rate=0.1,\n",
    "          n_estimators=332,#第一次226,第二次332\n",
    "          max_depth=5,\n",
    "          min_child_weight=1,\n",
    "          gamma=0,\n",
    "          subsample=0.8,\n",
    "          colsample_bytree=0.8,\n",
    "          colsample_bylevel=0.7,\n",
    "          \n",
    "          reg_lambda = 0.01,\n",
    "          objective='multi:softprob',\n",
    "          seed=3)\n",
    "gridsearch2_1 = GridSearchCV(xgb2_1, param_grid = param_test2_1, scoring='neg_log_loss')\n",
    "gridsearch2_1.fit(X_train, y_train)\n",
    "#modelfit(xgb2_1, X_train, y_train, cv_folds=kfold) \n",
    "print('The Best score is %f and using %s'%(gridsearch2_1.best_score_, gridsearch2_1.best_params_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\Anaconda3\\envs\\py3\\lib\\site-packages\\sklearn\\model_selection\\_search.py:667: DeprecationWarning: The grid_scores_ attribute was deprecated in version 0.18 in favor of the more elaborate cv_results_ attribute. The grid_scores_ attribute will not be available from 0.20\n",
      "  DeprecationWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[mean: -0.00003, std: 0.00000, params: {'max_depth': 4, 'min_child_weight': 0.5},\n",
       " mean: -0.00006, std: 0.00000, params: {'max_depth': 4, 'min_child_weight': 1},\n",
       " mean: -0.00009, std: 0.00000, params: {'max_depth': 4, 'min_child_weight': 1.5},\n",
       " mean: -0.00003, std: 0.00000, params: {'max_depth': 5, 'min_child_weight': 0.5},\n",
       " mean: -0.00006, std: 0.00000, params: {'max_depth': 5, 'min_child_weight': 1},\n",
       " mean: -0.00009, std: 0.00000, params: {'max_depth': 5, 'min_child_weight': 1.5},\n",
       " mean: -0.00003, std: 0.00000, params: {'max_depth': 6, 'min_child_weight': 0.5},\n",
       " mean: -0.00006, std: 0.00000, params: {'max_depth': 6, 'min_child_weight': 1},\n",
       " mean: -0.00010, std: 0.00000, params: {'max_depth': 6, 'min_child_weight': 1.5}]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gridsearch2_1.grid_scores_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([ 117.52438871,  114.80123289,  113.72117098,  125.69118921,\n",
       "         123.55240019,  123.0680391 ,  133.30462464,  131.26684141,\n",
       "         130.29411888]),\n",
       " 'mean_score_time': array([ 0.43735822,  0.48069421,  0.40268985,  0.47502708,  0.44235865,\n",
       "         0.46035957,  0.49802836,  0.49302824,  0.48269439]),\n",
       " 'mean_test_score': array([ -2.93673073e-05,  -5.83965939e-05,  -8.96761332e-05,\n",
       "         -3.08304021e-05,  -6.07186268e-05,  -8.94116170e-05,\n",
       "         -3.18726213e-05,  -6.11343223e-05,  -9.65254061e-05]),\n",
       " 'mean_train_score': array([ -2.89008025e-05,  -5.75401299e-05,  -8.83039082e-05,\n",
       "         -3.01917118e-05,  -5.94913164e-05,  -8.76293735e-05,\n",
       "         -3.08254917e-05,  -5.92150534e-05,  -9.36527368e-05]),\n",
       " 'param_max_depth': masked_array(data = [4 4 4 5 5 5 6 6 6],\n",
       "              mask = [False False False False False False False False False],\n",
       "        fill_value = ?),\n",
       " 'param_min_child_weight': masked_array(data = [0.5 1 1.5 0.5 1 1.5 0.5 1 1.5],\n",
       "              mask = [False False False False False False False False False],\n",
       "        fill_value = ?),\n",
       " 'params': ({'max_depth': 4, 'min_child_weight': 0.5},\n",
       "  {'max_depth': 4, 'min_child_weight': 1},\n",
       "  {'max_depth': 4, 'min_child_weight': 1.5},\n",
       "  {'max_depth': 5, 'min_child_weight': 0.5},\n",
       "  {'max_depth': 5, 'min_child_weight': 1},\n",
       "  {'max_depth': 5, 'min_child_weight': 1.5},\n",
       "  {'max_depth': 6, 'min_child_weight': 0.5},\n",
       "  {'max_depth': 6, 'min_child_weight': 1},\n",
       "  {'max_depth': 6, 'min_child_weight': 1.5}),\n",
       " 'rank_test_score': array([1, 4, 8, 2, 5, 7, 3, 6, 9]),\n",
       " 'split0_test_score': array([ -2.98439991e-05,  -5.95692727e-05,  -9.15637927e-05,\n",
       "         -3.03678770e-05,  -6.04846274e-05,  -8.92993448e-05,\n",
       "         -3.35281925e-05,  -6.04665285e-05,  -9.86841660e-05]),\n",
       " 'split0_train_score': array([ -2.90710645e-05,  -5.81537285e-05,  -8.95604982e-05,\n",
       "         -2.95078320e-05,  -5.88224704e-05,  -8.69724113e-05,\n",
       "         -3.23172972e-05,  -5.84777985e-05,  -9.55721700e-05]),\n",
       " 'split1_test_score': array([ -2.88201855e-05,  -5.72678018e-05,  -8.67510208e-05,\n",
       "         -3.09018804e-05,  -6.18939923e-05,  -8.96968012e-05,\n",
       "         -3.10910558e-05,  -6.13504000e-05,  -9.68358834e-05]),\n",
       " 'split1_train_score': array([ -2.85249013e-05,  -5.66439957e-05,  -8.57225886e-05,\n",
       "         -3.04045354e-05,  -6.08617943e-05,  -8.81708490e-05,\n",
       "         -3.01854711e-05,  -5.93307113e-05,  -9.37196774e-05]),\n",
       " 'split2_test_score': array([ -2.94377414e-05,  -5.83527045e-05,  -9.07136493e-05,\n",
       "         -3.12214726e-05,  -5.97772035e-05,  -8.92386945e-05,\n",
       "         -3.09985626e-05,  -6.15860659e-05,  -9.40560189e-05]),\n",
       " 'split2_train_score': array([ -2.91064418e-05,  -5.78226654e-05,  -8.96286378e-05,\n",
       "         -3.06627679e-05,  -5.87896844e-05,  -8.77448602e-05,\n",
       "         -2.99737067e-05,  -5.98366503e-05,  -9.16663631e-05]),\n",
       " 'std_fit_time': array([ 3.22133496,  4.43219879,  0.96861118,  1.47320431,  1.60921779,\n",
       "         1.10515785,  0.30414343,  2.62207336,  1.56852045]),\n",
       " 'std_score_time': array([ 0.04171022,  0.11752628,  0.01367148,  0.0453237 ,  0.01388928,\n",
       "         0.04190174,  0.01122565,  0.02083395,  0.02154715]),\n",
       " 'std_test_score': array([  4.20931011e-07,   9.40093428e-07,   2.09731437e-06,\n",
       "          3.52123561e-07,   8.79869483e-07,   2.03173110e-07,\n",
       "          1.17129218e-06,   4.81910133e-07,   1.90213591e-06]),\n",
       " 'std_train_score': array([  2.66194391e-07,   6.47916166e-07,   1.82548055e-06,\n",
       "          4.94934110e-07,   9.69166660e-07,   4.96028315e-07,\n",
       "          1.05840255e-06,   5.60744835e-07,   1.59524140e-06])}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "gridsearch2_1.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0xbc407b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "test_means= gridsearch2_1.cv_results_['mean_test_score']\n",
    "test_stds= gridsearch2_1.cv_results_['std_test_score']\n",
    "train_means= gridsearch2_1.cv_results_['mean_train_score']\n",
    "train_stds = gridsearch2_1.cv_results_['std_train_score']\n",
    "\n",
    "pd.DataFrame(gridsearch2_1.cv_results_).to_csv('1_maxdepth_childweight.csv')\n",
    "\n",
    "test_scores = np.array(test_means).reshape(len(max_depth), len(min_child_weight))\n",
    "train_scores = np.array(train_means).reshape(len(max_depth), len(min_child_weight))\n",
    "\n",
    "for i,value in enumerate(max_depth):\n",
    "    plt.plot(min_child_weight, -test_scores[i],label='test_max_depth{0}'.format(max_depth[i]))\n",
    "#for i,value in enumerate(min_child_weight)\n",
    "    #plt.plot(max_depth, train_scores[i], label='train_min_child_weight{0}'.format(min_child_weight[i]))\n",
    "plt.legend()\n",
    "plt.xlabel('min_childe_weight')\n",
    "plt.ylabel('logloss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
